Lender Price API
In This Topic
    Locking a Loan with LOS
    In This Topic

    The standard procedure for locking a loan involves the following steps: completing a pricing search, creating a price quote from the search results, and placing a lock or lock request on the selected price quote for a loan. Once the loan is locked, the user has the option to select next steps as determined by the lock policy of the selected loan lender. In total, this locking procedure involves authentication, followed by calling five API endpoints.

    1. Pull a loan pipeline from Encompass. Select a loan, and pull its ID to pass on in the next step. See Pull loan pipeline from Encompass.
    2. Pull the details on the loan you have selected. See Get Loan.
    3. Calculate possible prices for your selected loan. See 4. Get Pricing.
    4. Create a loan scenario for a selected price and export it. See 5. Export Pricing. Substeps include:

    Once the loan has been created and the price has been locked in, it is possible to amend the loan in the following ways:

    Step API Endpoint
    Pull loan
    pipeline
    from
    Encompass
    /rest/v1/integration/ellie/loan/pipeline
    Get
    loan
    /rest/v1/integration/ellie/loan/pipeline/getLoan/{loanId}
    Get
    pricings
    /rest/v1/lp-ppe-api/pricing/search?userIdToUse={userId}
    Export
    pricing
    /rest/v1/lp-ppe-api/price-quote/setScenarioFromResult/EllieMaeQuoteRequest
    Lock
    Request w/
    Price
    Concession

     Check lock desk hour:

    /rest/v1/lp-ppe-api/checkLockStatus/{lockId}/{statusId}

    Check rate status:

     /rest/v1/lp-ppe-api/isRatePeriodStillActive/{priceQuoteId}/{statusId}

    Add request lock event:

    /rest/v1/lp-ppe-api/price-quote/addLockEvent

    Request
    Lock

    Check lock desk hour:

     /rest/v1/lp-ppe-api/checkLockStatus/{lockId}/{statusId}

    Check rate status:

    /rest/v1/lp-ppe-api/isRatePeriodStillActive/{priceQuoteId}/{statusId}

    Add request lock event:

     /rest/v1/lp-ppe-api/price-quote/addLockEvent

    Deny
    Lock
    Request
    /rest/v1/lp-ppe-api/price-quote/addLockEvent
    Approve
    Lock
    Request
    /rest/v1/lp-ppe-api/price-quote/addLockEvent
    Reprice

    Check lock desk hour:

     /rest/v1/lp-ppe-api/checkLockStatus/{lockId}/{statusId}

    Get pricer config:

     /rest/lp-config/pricing-config/loanPricer 9.2.2 - Get priceQuote /rest/integration/ellie/getSearch/{priceQuoteId}

    Get pricings:

     /rest/v1/lp-ppe-api/pricing/search?userIdToUse={userId}

     Export pricing:

     /rest/v1/lp-ppe-api/price-quote/setScenarioFromResult/EllieMaeBuyRequest

     Add request lock event:

     /rest/v1/lp-ppe-api/price-quote/addLockEvent

    Extension
    Request

    Check lock desk hour:

     /rest/v1/lp-ppe-api/checkLockStatus/{lockId}/{statusId}

    Check extension day availability:

     /rest/v1/lp-ppe-api/getEstimatedExpirationDate/{priceQuoteId}/{days}

    Check rate period:

     /rest/v1/lp-ppe-api/isRatePeriodStillActive/{priceQuoteId}/{statusId}

    Add request lock event:

     /rest/v1/lp-ppe-api/price-quote/addLockEvent

    Approve
    Extension
    /rest/v1/lp-ppe-api/price-quote/addLockEvent
    Request
    Post-Lock
    Price
    Concession

    Check lock desk hour:

     /rest/v1/lp-ppe-api/checkLockStatus/{lockId}/{statusId}

    Check rate period:

     /rest/v1/lp-ppe-api/isRatePeriodStillActive/{priceQuoteId}/{statusId}

     Add request lock event:

     /rest/v1/lp-ppe-api/price-quote/addLockEvent

    Cancel
    Lock
    /rest/v1/lp-ppe-api/price-quote/addLockEvent
    Allow
    Current
    Pricing
    /rest/v1/lp-ppe-api/price-quote/addLockEvent

     

     Price a Loan

    Pricing is done using the API call: /rest/pricing/multisearch/{userID}

    The locking procedure begins with a pricing search. Users should familiarize themselves with the Pricing a Loan section before performing a search, as the multisearch API call is highly configurable and complex.

    Pricing a loan returns all matching loans, listed in the line results of the response. See Pricing Response and Pricing Request for more information on locating search results and setting request fields.

     Create a Price Quote

    Creating a price quote uses the API call: POST /rest/v1/pipeline

    When a user wants to select one of the search results for locking, meaning they freeze the rate and loan details at that point in time, they must create a price quote from the search result with this API call.

    Calling the pipeline API will create a line item with the user's name and ID in the database. The data stored is the user's pricing search and the line result that they have selected. 

    Users can also retrieve a price quote that has already been created with the call: GET /rest/v1/pipeline/:id

    See Get a Price Quote for more information.

    This result is later referenced under the priceQuoteId field and used to lock the loan in step three, Locking with Scenario.

    Request

    Important fields in the request. None of the fields below are mandatory:

    person This field will populate with the primary borrower on the loan
    associated
    UserId
    The loan officer id the user wants to assign. If empty it will be the current user id of the caller
    search The user's search. If empty, the pipeline won't map the search parameter to the loan.
    line
    Result
    The line result of the selected pricing. If not empty the a scenario will be created in the loan.
    Sample Request
    Copy Code
    curl --location -g --request POST '{{protocol}}{{domain}}/rest/v1/pipeline' \
    --header 'secret: {{token}}' \
    --header 'companyid: {{companyId}}' \
    --data-raw '{
        "name": "",
        "note": "",
        "person": {
            "firstname": null,
            "lastname": null,
            "middlename": null,
            "sex": null,
            "birthDate": null,
            "title": null,
            "address": {
                "street": "",
                "streetCont": "",
                "city": "",
                "zip": "",
                "state": ""
            },
            "contactDetails": {
                "email": null,
                "phone": null,
                "fax": null,
                "mobile": null
            }
        },
        "associatedUserId": null,
        "search": {
            "titleVendorQuestions": [],
            "useExternalFees": true,
            "showTitleQuestion": true,
            "criteria": {
                "purchasePrice": 500000.0,
                "loanAmount": 400000.0,
                "rehabBudget": 0.0,
                "totalLoanAmount": 0.0,
                "computeApr": true,
                "totalLoanAmountByMortgageType": {},
                "subordinateLoanAmount": 0.0,
                "pmiType": "None",
                "monthlyIncome": 5000.0,
                "monthlyDebt": 2150.0,
                "lineAmount": 0.0,
                "drawAmount": 0.0,
                "appraisedValue": 0.0,
                "isFirstLienSame": "",
                "employeeLoan": "",
                "loanYear": 30,
                "loanPurpose": "Purchase",
                "loanType": "Fixed",
                "paymentInterestType": "FullPITI",
                "mortgageTypes": [
                    "Conventional"
                ],
                "mortgageLimitMapByYear": {},
                "highBalanceCountyMappedByYear": {},
                "mortgageLimit": "Conforming",
                "fhaMortgageLimit": 625500.0,
                "propertyUse": "PrimaryResidence",
                "ownProperties": 0,
                "veteranType": "Active_Or_Veteran",
                "vaUsageType": "First_Use",
                "ufmipFinanced": "YES",
                "fundingFeeFinanced": "YES",
                "guranteeFeeFinanced": "YES",
                "propertyValuationType": "Full_Appraisal",
                "calculatedfeeAmount": 0.0,
                "calculatedFeeByMortgageType": {},
                "affinityCode": "",
                "affinityCodes": [],
                "specialMortgageOptions": [],
                "inclusive": false,
                "varaiableLoanTypes": [],
                "fico": 760,
                "cemaIndicator": false,
                "downPaymentAmount": 0.0,
                "compensationType": "LenderCompPlan",
                "totalLoanAmountByVaType": {},
                "escrowWaiver": false,
                "lenderFeeWaiver": false,
                "highBalanceCounty": false,
                "subordinate": false,
                "ltv": 0.8,
                "hcltvLineAmount": 0.8,
                "hcltvDrawAmount": 0.8,
                "cltv": 0.8,
                "dti": 0.43,
                "loanDownPayement": 0.0,
                "loanDownPayment": 0.0,
                "valueOfCollateral": 500000.0
            },
            "property": {
                "address": {
                    "street": "",
                    "streetCont": "",
                    "city": "",
                    "zip": "",
                    "state": ""
                },
                "propertyType": "SingleFamily",
                "attachmentType": "Attached"
            },
            "brokerCriteria": {
                "searchContext": {},
                "minimunCompensation": null,
                "maxCompensation": null,
                "overrideExistingComplan": false,
                "compPlan": null,
                "qmFilterLimit": 3,
                "lockGroup": null,
                "rateTypes": [],
                "subRateTypes": [],
                "view": "LenderPaid",
                "businessSourceType": "BST_NA",
                "divisionSourceType": null,
                "leadSourceType": null,
                "feeServicer": null,
                "feeServicerList": [],
                "adjustments": [],
                "rangeComplan": {
                    "@class": "com.cre8techlabs.entity.range.DoubleRangeGeLe",
                    "from": null,
                    "to": null
                },
                "sortStrategy": "APR",
                "priceBucketList": [],
                "resultPerBucket": 1,
                "pricingExceptionRate": null,
                "lockExtensionCostRate": null,
                "pricingExceptionAmount": null,
                "qmTreshold": null,
                "dayLocks": 30,
                "dayLocksList": [
                    15,
                    30,
                    45,
                    60
                ],
                "ausList": [
                    "None",
                    "GUS",
                    "MUW",
                    "LP",
                    "DU"
                ],
                "ausIndicator": "",
                "closingCostRange": {
                    "@class": "com.cre8techlabs.entity.broker.BrokerCriteria$RangeClosingCost",
                    "from": null,
                    "to": null,
                    "closestToPar": false,
                    "infinite": true
                },
                "displayConventionalRate": false,
                "displayMultiple": null
            },
            "accessCriteria": {
                "accessPortal": null,
                "includeMonthlyPaymentDetail": false,
                "dataLog": true,
                "companyIds": [],
                "companyMap": {},
                "ratePeriodMap": {},
                "overrideNode": 25,
                "fieldsToRemove": []
            },
            "miCriteria": {
                "miCompanyId": null,
                "miCompanyName": null,
                "amortizationType": "FullyAmmortized",
                "loanType": "Fixed",
                "duLpDecision": "DU_Approve_Eligible",
                "buyDownPercent": "None",
                "originationChannel": "Retail",
                "loanProgram": null,
                "renewalType": "Constant",
                "paymentPlan": "EZMonthly",
                "paymentType": "Monthly",
                "coBorrowerFicoScore": null,
                "varaiableLoanType": null,
                "monthlyPlanRefundable": false,
                "singlePlanRefundable": false,
                "borrowerNonTraditionalCredit": false,
                "coBorrowerNonTraditionalCredit": false,
                "borrowerSelfEmployed": false,
                "coBorrowerSelfEmployed": false,
                "buydownUpfrontAmount": null,
                "needCoBorrower": false,
                "initialPremiumAtClosing": "Deferred",
                "rateQuoteAllProductIndicator": false,
                "rateQuoteProductComparisonIndicator": false,
                "miPremiumFinancedIndicator": false,
                "premiumRatePlanType": "Level",
                "miRateSource": null,
                "numberOfDeferredPayments": 0
            },
            "dynamicPropertiesMap": {},
            "rateGridIds": [],
            "rateProgramIds": [],
            "ratePeriodIds": [],
            "investors": [],
            "investorIds": [],
            "test": false,
            "skipAdjustments": false,
            "filter": {
                "programNames": [],
                "productCode": []
            },
            "globalGroupAdjustmentMap": {},
            "showDisqualify": false,
            "showDisqualifyRules": true,
            "sortAscPoints": true,
            "showUnmatchCompPlan": true,
            "feeCriteria": {},
            "closingCost": {
                "closingCostGroup": [],
                "settlementCost": {
                    "origination": {
                        "othersLabel": "Fee",
                        "others": 0.0,
                        "underwritingLabel": "Underwriting",
                        "underwriting": 0.0,
                        "administrationLabel": "Administration Fee",
                        "administration": null,
                        "lenderCreditLabel": "Lender Credit",
                        "lenderCredit": null,
                        "total": 0.0
                    },
                    "titleService": {
                        "overrideTitle": false,
                        "titleInsuranceLabel": "Title Insurance Cost",
                        "titleInsurance": null,
                        "borrowerTitlePaidPercentLabel": "Borrower Title Insurance Percent",
                        "borrowerTitlePaidPercent": 0.5,
                        "overrideEscrow": false,
                        "escrowCostLabel": "Escrow Cost",
                        "escrowCost": null,
                        "borrowerEscrowPaidPercentLabel": "Borrower Escrow Cost Percent",
                        "borrowerEscrowPaidPercent": 0.5,
                        "notarySignLabel": "Notary Sign",
                        "notarySign": 145.0,
                        "total": 145.0
                    },
                    "thirdPartyServices": {
                        "appraisalLabel": "Appraisal",
                        "appraisal": 500.0,
                        "taxServiceLabel": "Tax Service",
                        "taxService": 0.0,
                        "creditReportLabel": "Credit Report",
                        "creditReport": 0.0,
                        "floodCertificationLabel": "Floor Certification",
                        "floodCertification": 12.0,
                        "overnightLabel": "Overnight",
                        "overnight": 16.0,
                        "recordingLabel": "Recording",
                        "recording": 85.0,
                        "total": 613.0
                    },
                    "closingCostGroup": [],
                    "total": 758.0
                },
                "useClosingCost": false,
                "useCompanyDefaultClosingCost": false,
                "useErnstCost": false,
                "allowErnstQuote": false,
                "total": 758.0
            },
            "multiSearchClosingCostList": [],
            "rates": [],
            "rateRange": {
                "@class": "com.cre8techlabs.entity.range.DoubleRangeLeGt",
                "from": null,
                "to": null,
                "null": true
            },
            "maxListingPerRate": 15,
            "showPayeeDetail": false,
            "loanAmountCriteria": [],
            "termsCriteria": [
                30
            ],
            "loanPurposeCriteria": [
                "Purchase"
            ],
            "loanTypeCriteria": [
                "Fixed"
            ],
            "varLoanTypeCriteria": [],
            "titleVendors": []
        }
    }'

    Response

    Price Quote Result Example
    Copy Code
    {
      "id": "607dab84ee84153094f5bf9f",
      "creationDate": "2021-04-19T16:10:44Z",
      "modifiedDate": "2021-04-19T16:10:44Z",
      "companyId": "55afea6ee4b04b10ed2d6a12",
      "userId": "6065f028f0c1310001642413",
      "loanApplicationVersion": "_2_3_1",
      "name": "FLA_4A3SZX",
      "note": "",
      "newFile": false,
      "hidden": false,
      "search": {
        "id": "607dab84ee84153094f5be55",
        //search data
      }
    }
     Lock with Scenario

    Locking a price quote uses the API call: POST /rest/v1/lock/lockWithScenario

    This is the call used to make the lock or lock request, depending on the locking policy of the lender company.
           
    The lock passes the user's price quote in priceQuoteId, which includes the selected line result and base search from which the line result was obtained.   
       
        

    Request

    Example Request
    Copy Code
    curl --location -g --request POST '{{protocol}}{{domain}}/rest/v1/lock/lockWithScenario/' \
    --header 'secret: {{token}}' \
    --header 'companyid: {{companyId}}' \
    --data-raw '
    {
        "priceQuoteId" : "6143d16a3907183821572ae0",
        "overrideLockDate": "2022-05-01T22:00:02.000Z",
        "search":{
        //search data
        }
    }'

     

     Get Next Possible Status

    Getting the next possible status uses the API call: GET rest/v1/lock/getNextLockStatus/:lockId/:lockEventId

    A lock is not necessary to make this call, but a price quote is. This call retrieves possible actions that the user can make with their lock at any given time, based upon the lender company's lock policy.

    For instance, after locking a loan, some common actions might be:

    • Requesting an extension
    • Deleting the lock
    • Requesting a pricing exception
    • Making other edits to the lock

    The next possible steps are determined by the lender company's locking policy. For instance, the policy will determine what a user can edit in a lock, what the policy for an extension is, and what a user can do once the lock expires.                               

    Path Parameters

    lockId The unique ID of the lock.
    lockEventId The unique ID of the last locking event, such as a lock on a price quote.

           

    Headers

    secret

    {{token}}

    Token

    companyid

    {{companyId}}

    CompanyId

    Request

    Copy Code
    curl --location -g --request GET '{{protocol}}{{domain}}/rest/v1/lock/getNextLockStatus/{{lockId}}/{{lockEventId}}' \
    --header 'secret: {{token}}' \
    --header 'companyid: {{companyId}}' \
    --data-raw ''

    Response

    Copy Code
    [
      {
        "id": "5bec8a27671267199356e282",
        "mergeSet": null,
        "createdBy": null,
        "creationDate": "2018-11-14T20:48:39Z",
        "modifiedBy": null,
        "modifiedDate": "2018-11-14T20:48:39Z",
        "order": 0,
        "root": false,
        "primeState": false,
        "autoStatus": false,
        "autoStatusLockStatusId": null,
        "allowRevert": false,
        "allowRevertTo": [],
        "productCodes": null,
        "productCodesExclude": null,
        "allowPriceChange": false,
        "code": "Approved",
        "buttonName": "Approve",
        "description": "From loan status",
        "loanSupplyType": [
          "SellSide"
        ],
        "visibleGroupIds": [],
        "alertGroupIds": [],
        "mappingLos": [],
        "nextStatusIds": [
          "5bb2a97046e0fb00019d3eb7"
        ],
        "color": "blue",
        "alert": false,
        "alertActors": [],
        "lockStatusLogic": "None",
        "allowDaylockOverride": false,
        "allowGracePeriodOverride": false,
        "requireReprice": false,
        "repriceOutOfGroup": false,
        "worseCase": false,
        "allowLockDateUpdate": false,
        "disabled": false,
        "lockException": {
          "requestType": "Request",
          "enable": false,
          "priceToFee": false,
          "type": "Rate",
          "types": [],
          "valueType": "Points",
          "lockExceptionMappedByGroup": {}
        },
        "lockExtender": {
          "id": "5bec8a27671267199356e283",
          "mergeSet": null,
          "createdBy": null,
          "creationDate": "2018-11-14T20:48:39Z",
          "modifiedBy": null,
          "modifiedDate": "2018-11-14T20:48:39Z",
          "enable": false,
          "type": "Request",
          "useRateProgram": true,
          "allowOverride": false,
          "lockExtensions": [],
          "allowDailyFee": false,
          "dailyFeeAmount": null,
          "comment": null
        },
        "worseCaseSettings": {
          "currentRateSheet": null,
          "historicalRateSheet": null,
          "worseCase": null
        },
        "buySide": false
      },
      {
        "id": "5c0af82c46e0fb000125337b",
        "mergeSet": null,
        "createdBy": null,
        "creationDate": "2018-12-07T22:46:04Z",
        "modifiedBy": null,
        "modifiedDate": "2018-12-07T22:46:04Z",
        "order": 0,
        "root": false,
        "primeState": false,
        "autoStatus": true,
        "autoStatusLockStatusId": "5bb2a97046e0fb00019d3eb7",
        "allowRevert": false,
        "allowRevertTo": [],
        "productCodes": null,
        "productCodesExclude": null,
        "allowPriceChange": false,
        "code": "Price Exception Cancelled/Denied",
        "buttonName": "Price Exception Cancelled/Denied",
        "description": null,
        "loanSupplyType": [
          "BuySide",
          "SellSide"
        ],
        "visibleGroupIds": [],
        "alertGroupIds": [],
        "mappingLos": [],
        "nextStatusIds": [
          "5bb2a97046e0fb00019d3eb7"
        ],
        "color": "olive",
        "alert": false,
        "alertActors": [],
        "lockStatusLogic": "Other",
        "allowDaylockOverride": false,
        "allowGracePeriodOverride": false,
        "requireReprice": false,
        "repriceOutOfGroup": false,
        "worseCase": false,
        "allowLockDateUpdate": false,
        "disabled": false,
        "lockException": {
          "requestType": "Request",
          "enable": false,
          "priceToFee": false,
          "type": "Price",
          "types": [],
          "valueType": "Points",
          "lockExceptionMappedByGroup": {}
        },
        "lockExtender": {
          "id": "5c0af82c46e0fb000125337c",
          "mergeSet": null,
          "createdBy": null,
          "creationDate": "2018-12-07T22:46:04Z",
          "modifiedBy": null,
          "modifiedDate": "2018-12-07T22:46:04Z",
          "enable": false,
          "type": "Request",
          "useRateProgram": true,
          "allowOverride": false,
          "lockExtensions": [],
          "allowDailyFee": false,
          "dailyFeeAmount": null,
          "comment": null
        },
        "worseCaseSettings": {
          "currentRateSheet": null,
          "historicalRateSheet": null,
          "worseCase": null
        },
        "buySide": true
      },
      {
        "id": "5bf2103430ac474cbdff63df",
        "mergeSet": null,
        "createdBy": null,
        "creationDate": "2018-11-19T01:21:56Z",
        "modifiedBy": null,
        "modifiedDate": "2018-11-19T01:21:56Z",
        "order": 0,
        "root": false,
        "primeState": false,
        "autoStatus": true,
        "autoStatusLockStatusId": "5bb2a97046e0fb00019d3eb7",
        "allowRevert": false,
        "allowRevertTo": [],
        "productCodes": null,
        "productCodesExclude": null,
        "allowPriceChange": false,
        "code": "Lock Date Override",
        "buttonName": "Lock Date Override",
        "description": "Lock Date Override",
        "loanSupplyType": [
          "SellSide"
        ],
        "visibleGroupIds": [],
        "alertGroupIds": [],
        "mappingLos": [],
        "nextStatusIds": [
          "5bb2a97046e0fb00019d3eb7"
        ],
        "color": "green",
        "alert": false,
        "alertActors": [],
        "lockStatusLogic": "Modified",
        "allowDaylockOverride": false,
        "allowGracePeriodOverride": false,
        "requireReprice": false,
        "repriceOutOfGroup": false,
        "worseCase": false,
        "allowLockDateUpdate": true,
        "disabled": false,
        "lockException": {
          "requestType": "Request",
          "enable": false,
          "priceToFee": false,
          "type": "Price",
          "types": [],
          "valueType": "Points",
          "lockExceptionMappedByGroup": {}
        },
        "lockExtender": {
          "id": "5bf2103430ac474cbdff63e0",
          "mergeSet": null,
          "createdBy": null,
          "creationDate": "2018-11-19T01:21:56Z",
          "modifiedBy": null,
          "modifiedDate": "2018-11-19T01:21:56Z",
          "enable": false,
          "type": "Request",
          "useRateProgram": true,
          "allowOverride": false,
          "lockExtensions": [],
          "allowDailyFee": false,
          "dailyFeeAmount": null,
          "comment": null
        },
        "worseCaseSettings": {
          "currentRateSheet": null,
          "historicalRateSheet": null,
          "worseCase": null
        },
        "buySide": false
      },
      {
        "id": "5bb2aa1a46e0fb00019d49d6",
        "mergeSet": null,
        "createdBy": null,
        "creationDate": "2018-10-01T23:13:30Z",
        "modifiedBy": null,
        "modifiedDate": "2018-10-01T23:13:30Z",
        "order": 0,
        "root": false,
        "primeState": false,
        "autoStatus": true,
        "autoStatusLockStatusId": "5bb2a97046e0fb00019d3eb7",
        "allowRevert": false,
        "allowRevertTo": [],
        "productCodes": null,
        "productCodesExclude": null,
        "allowPriceChange": false,
        "code": "Price Effective Date Override",
        "buttonName": "Price Effective Date Override",
        "description": "Price Effective Date Override",
        "loanSupplyType": [
          "SellSide"
        ],
        "visibleGroupIds": [],
        "alertGroupIds": [],
        "mappingLos": [],
        "nextStatusIds": [
          "5bb2a97046e0fb00019d3eb7"
        ],
        "color": "darkblue",
        "alert": false,
        "alertActors": [],
        "lockStatusLogic": "Other",
        "allowDaylockOverride": false,
        "allowGracePeriodOverride": false,
        "requireReprice": true,
        "repriceOutOfGroup": false,
        "worseCase": false,
        "allowLockDateUpdate": false,
        "disabled": false,
        "lockException": {
          "requestType": "Request",
          "enable": false,
          "priceToFee": false,
          "type": "Rate",
          "types": [],
          "valueType": "Points",
          "lockExceptionMappedByGroup": {}
        },
        "lockExtender": {
          "id": "5bb2aa1a46e0fb00019d49d7",
          "mergeSet": null,
          "createdBy": null,
          "creationDate": "2018-10-01T23:13:30Z",
          "modifiedBy": null,
          "modifiedDate": "2018-10-01T23:13:30Z",
          "enable": false,
          "type": "Request",
          "useRateProgram": true,
          "allowOverride": false,
          "lockExtensions": [],
          "allowDailyFee": false,
          "dailyFeeAmount": null,
          "comment": null
        },
        "worseCaseSettings": {
          "currentRateSheet": null,
          "historicalRateSheet": null,
          "worseCase": null
        },
        "buySide": false
      },
      {
        "id": "5be3286346e0fb0001fdcc42",
        "mergeSet": null,
        "createdBy": null,
        "creationDate": "2018-11-07T18:01:07Z",
        "modifiedBy": null,
        "modifiedDate": "2018-11-07T18:01:07Z",
        "order": 0,
        "root": false,
        "primeState": false,
        "autoStatus": true,
        "autoStatusLockStatusId": "5bb2a97046e0fb00019d3eb7",
        "allowRevert": false,
        "allowRevertTo": [],
        "productCodes": null,
        "productCodesExclude": null,
        "allowPriceChange": false,
        "code": "Loan Update",
        "buttonName": "Update",
        "description": null,
        "loanSupplyType": [
          "BuySide"
        ],
        "visibleGroupIds": [],
        "alertGroupIds": [],
        "mappingLos": [],
        "nextStatusIds": [
          "5bb2a97046e0fb00019d3eb7"
        ],
        "color": "blue",
        "alert": false,
        "alertActors": [],
        "lockStatusLogic": "Other",
        "allowDaylockOverride": false,
        "allowGracePeriodOverride": false,
        "requireReprice": true,
        "repriceOutOfGroup": false,
        "worseCase": false,
        "allowLockDateUpdate": false,
        "disabled": false,
        "lockException": {
          "requestType": "Request",
          "enable": false,
          "priceToFee": false,
          "type": "Rate",
          "types": [],
          "valueType": "Points",
          "lockExceptionMappedByGroup": {}
        },
        "lockExtender": {
          "id": "5be3286346e0fb0001fdcc43",
          "mergeSet": null,
          "createdBy": null,
          "creationDate": "2018-11-07T18:01:07Z",
          "modifiedBy": null,
          "modifiedDate": "2018-11-07T18:01:07Z",
          "enable": false,
          "type": "Request",
          "useRateProgram": true,
          "allowOverride": false,
          "lockExtensions": [],
          "allowDailyFee": false,
          "dailyFeeAmount": null,
          "comment": null
        },
        "worseCaseSettings": {
          "currentRateSheet": null,
          "historicalRateSheet": null,
          "worseCase": null
        },
        "buySide": true
      },
      {
        "id": "5bb3cc19fc98bb20d970f0e0",
        "mergeSet": null,
        "createdBy": null,
        "creationDate": "2018-10-02T19:50:49Z",
        "modifiedBy": null,
        "modifiedDate": "2018-10-02T19:50:49Z",
        "order": 0,
        "root": false,
        "primeState": false,
        "autoStatus": true,
        "autoStatusLockStatusId": "5bb2a91a46e0fb00019d301e",
        "allowRevert": false,
        "allowRevertTo": [],
        "productCodes": null,
        "productCodesExclude": null,
        "allowPriceChange": false,
        "code": "Cancel Lock",
        "buttonName": "cancel",
        "description": null,
        "loanSupplyType": [
          "SellSide"
        ],
        "visibleGroupIds": [],
        "alertGroupIds": [],
        "mappingLos": [],
        "nextStatusIds": [
          "5bb2a91a46e0fb00019d301e"
        ],
        "color": "darkred",
        "alert": false,
        "alertActors": [],
        "lockStatusLogic": "Other",
        "allowDaylockOverride": false,
        "allowGracePeriodOverride": false,
        "requireReprice": false,
        "repriceOutOfGroup": false,
        "worseCase": false,
        "allowLockDateUpdate": false,
        "disabled": false,
        "lockException": {
          "requestType": "Request",
          "enable": false,
          "priceToFee": false,
          "type": "Rate",
          "types": [],
          "valueType": "Points",
          "lockExceptionMappedByGroup": {}
        },
        "lockExtender": {
          "id": "5bb3cc19fc98bb20d970f0e1",
          "mergeSet": null,
          "createdBy": null,
          "creationDate": "2018-10-02T19:50:49Z",
          "modifiedBy": null,
          "modifiedDate": "2018-10-02T19:50:49Z",
          "enable": false,
          "type": "Request",
          "useRateProgram": true,
          "allowOverride": false,
          "lockExtensions": [],
          "allowDailyFee": false,
          "dailyFeeAmount": null,
          "comment": null
        },
        "worseCaseSettings": {
          "currentRateSheet": null,
          "historicalRateSheet": null,
          "worseCase": null
        },
        "buySide": false
      },
      {
        "id": "5c6dbfd94cedfd0001eb5579",
        "mergeSet": null,
        "createdBy": null,
        "creationDate": "2019-02-20T21:00:09Z",
        "modifiedBy": null,
        "modifiedDate": "2019-02-20T21:00:09Z",
        "order": 0,
        "root": false,
        "primeState": false,
        "autoStatus": true,
        "autoStatusLockStatusId": "5bb2a97046e0fb00019d3eb7",
        "allowRevert": false,
        "allowRevertTo": [],
        "productCodes": null,
        "productCodesExclude": null,
        "allowPriceChange": false,
        "code": "Lock Extension (CM)",
        "buttonName": "Lock Extension (CM)",
        "description": null,
        "loanSupplyType": [
          "SellSide"
        ],
        "visibleGroupIds": [],
        "alertGroupIds": [],
        "mappingLos": [],
        "nextStatusIds": [
          "5bb2a97046e0fb00019d3eb7"
        ],
        "color": "black",
        "alert": false,
        "alertActors": [],
        "lockStatusLogic": "Other",
        "allowDaylockOverride": false,
        "allowGracePeriodOverride": false,
        "requireReprice": false,
        "repriceOutOfGroup": false,
        "worseCase": false,
        "allowLockDateUpdate": false,
        "disabled": false,
        "lockException": {
          "requestType": "Request",
          "enable": false,
          "priceToFee": false,
          "type": "Price",
          "types": [],
          "valueType": "Points",
          "lockExceptionMappedByGroup": {}
        },
        "lockExtender": {
          "id": "5c6dbfd94cedfd0001eb557a",
          "mergeSet": null,
          "createdBy": null,
          "creationDate": "2019-02-20T21:00:09Z",
          "modifiedBy": null,
          "modifiedDate": "2019-02-20T21:00:09Z",
          "enable": true,
          "type": "Response",
          "useRateProgram": true,
          "allowOverride": true,
          "lockExtensions": [],
          "allowDailyFee": false,
          "dailyFeeAmount": null,
          "comment": null
        },
        "worseCaseSettings": {
          "currentRateSheet": null,
          "historicalRateSheet": null,
          "worseCase": null
        },
        "buySide": false
      },
      {
        "id": "5be24290fc98bb47c10853f6",
        "mergeSet": null,
        "createdBy": null,
        "creationDate": "2018-11-07T01:40:32Z",
        "modifiedBy": null,
        "modifiedDate": "2018-11-07T01:40:32Z",
        "order": 0,
        "root": false,
        "primeState": false,
        "autoStatus": true,
        "autoStatusLockStatusId": "5bb2a97046e0fb00019d3eb7",
        "allowRevert": false,
        "allowRevertTo": [],
        "productCodes": [],
        "productCodesExclude": [],
        "allowPriceChange": false,
        "code": "Price Exception Approval",
        "buttonName": "Price Exception Approval",
        "description": null,
        "loanSupplyType": [
          "SellSide"
        ],
        "visibleGroupIds": [],
        "alertGroupIds": [],
        "mappingLos": [],
        "nextStatusIds": [
          "5bb2a97046e0fb00019d3eb7"
        ],
        "color": "black",
        "alert": false,
        "alertActors": [],
        "lockStatusLogic": "Modified",
        "allowDaylockOverride": false,
        "allowGracePeriodOverride": false,
        "requireReprice": false,
        "repriceOutOfGroup": false,
        "worseCase": false,
        "allowLockDateUpdate": false,
        "disabled": false,
        "lockException": {
          "requestType": "Grant",
          "enable": true,
          "priceToFee": false,
          "type": "Rate",
          "types": [
            "FEE"
          ],
          "valueType": "Points",
          "lockExceptionMappedByGroup": {}
        },
        "lockExtender": {
          "id": "5be24290fc98bb47c10853f7",
          "mergeSet": null,
          "createdBy": null,
          "creationDate": "2018-11-07T01:40:32Z",
          "modifiedBy": null,
          "modifiedDate": "2018-11-07T01:40:32Z",
          "enable": false,
          "type": "Request",
          "useRateProgram": true,
          "allowOverride": false,
          "lockExtensions": [],
          "allowDailyFee": false,
          "dailyFeeAmount": null,
          "comment": null
        },
        "worseCaseSettings": {
          "currentRateSheet": null,
          "historicalRateSheet": null,
          "worseCase": null
        },
        "buySide": false
      },
      {
        "id": "5bb2aabe46e0fb00019d5d54",
        "mergeSet": null,
        "createdBy": null,
        "creationDate": "2018-10-01T23:16:14Z",
        "modifiedBy": null,
        "modifiedDate": "2018-10-01T23:16:14Z",
        "order": 0,
        "root": false,
        "primeState": false,
        "autoStatus": true,
        "autoStatusLockStatusId": "5bb2a97046e0fb00019d3eb7",
        "allowRevert": false,
        "allowRevertTo": [],
        "productCodes": null,
        "productCodesExclude": null,
        "allowPriceChange": false,
        "code": "Min Day Lock Change",
        "buttonName": "Change Min Day Lock",
        "description": null,
        "loanSupplyType": [
          "SellSide"
        ],
        "visibleGroupIds": [],
        "alertGroupIds": [],
        "mappingLos": [],
        "nextStatusIds": [
          "5bb2a97046e0fb00019d3eb7"
        ],
        "color": "red",
        "alert": false,
        "alertActors": [],
        "lockStatusLogic": "Other",
        "allowDaylockOverride": true,
        "allowGracePeriodOverride": false,
        "requireReprice": false,
        "repriceOutOfGroup": false,
        "worseCase": false,
        "allowLockDateUpdate": false,
        "disabled": false,
        "lockException": {
          "requestType": "Request",
          "enable": false,
          "priceToFee": false,
          "type": "Rate",
          "types": [],
          "valueType": "Points",
          "lockExceptionMappedByGroup": {}
        },
        "lockExtender": {
          "id": "5bb2aabe46e0fb00019d5d55",
          "mergeSet": null,
          "createdBy": null,
          "creationDate": "2018-10-01T23:16:14Z",
          "modifiedBy": null,
          "modifiedDate": "2018-10-01T23:16:14Z",
          "enable": false,
          "type": "Request",
          "useRateProgram": true,
          "allowOverride": false,
          "lockExtensions": [],
          "allowDailyFee": false,
          "dailyFeeAmount": null,
          "comment": null
        },
        "worseCaseSettings": {
          "currentRateSheet": null,
          "historicalRateSheet": null,
          "worseCase": null
        },
        "buySide": false
      },
      {
        "id": "5be24203fc98bb47c1084d60",
        "mergeSet": null,
        "createdBy": null,
        "creationDate": "2018-11-07T01:38:11Z",
        "modifiedBy": null,
        "modifiedDate": "2018-11-07T01:38:11Z",
        "order": 0,
        "root": false,
        "primeState": false,
        "autoStatus": false,
        "autoStatusLockStatusId": null,
        "allowRevert": false,
        "allowRevertTo": [],
        "productCodes": [],
        "productCodesExclude": [],
        "allowPriceChange": false,
        "code": "Price Exception Request",
        "buttonName": "Request Price Exception",
        "description": null,
        "loanSupplyType": [
          "BuySide"
        ],
        "visibleGroupIds": [],
        "alertGroupIds": [],
        "mappingLos": [],
        "nextStatusIds": [
          "5be24290fc98bb47c10853f6",
          "5c0af82c46e0fb000125337b",
          "5bb6b0eafc98bb38f2c0f60a",
          "5be3286346e0fb0001fdcc42",
          "5bb2a91a46e0fb00019d301e"
        ],
        "color": "teal",
        "alert": false,
        "alertActors": [],
        "lockStatusLogic": "ModificationRequested",
        "allowDaylockOverride": false,
        "allowGracePeriodOverride": false,
        "requireReprice": false,
        "repriceOutOfGroup": false,
        "worseCase": false,
        "allowLockDateUpdate": false,
        "disabled": false,
        "lockException": {
          "requestType": "Request",
          "enable": true,
          "priceToFee": false,
          "type": "Rate",
          "types": [
            "FEE"
          ],
          "valueType": "Points",
          "lockExceptionMappedByGroup": {}
        },
        "lockExtender": {
          "id": "5be24203fc98bb47c1084d61",
          "mergeSet": null,
          "createdBy": null,
          "creationDate": "2018-11-07T01:38:11Z",
          "modifiedBy": null,
          "modifiedDate": "2018-11-07T01:38:11Z",
          "enable": false,
          "type": "Request",
          "useRateProgram": true,
          "allowOverride": false,
          "lockExtensions": [],
          "allowDailyFee": false,
          "dailyFeeAmount": null,
          "comment": null
        },
        "worseCaseSettings": {
          "currentRateSheet": null,
          "historicalRateSheet": null,
          "worseCase": null
        },
        "buySide": true
      },
      {
        "id": "5bb2a9cb46e0fb00019d47b9",
        "mergeSet": null,
        "createdBy": null,
        "creationDate": "2018-10-01T23:12:11Z",
        "modifiedBy": null,
        "modifiedDate": "2018-10-01T23:12:11Z",
        "order": 0,
        "root": false,
        "primeState": false,
        "autoStatus": true,
        "autoStatusLockStatusId": "5bb2a97046e0fb00019d3eb7",
        "allowRevert": false,
        "allowRevertTo": [],
        "productCodes": null,
        "productCodesExclude": null,
        "allowPriceChange": false,
        "code": "Update(CM)",
        "buttonName": "Update(CM)",
        "description": "Update(CM)",
        "loanSupplyType": [
          "SellSide"
        ],
        "visibleGroupIds": [],
        "alertGroupIds": [],
        "mappingLos": [],
        "nextStatusIds": [
          "5bb2a97046e0fb00019d3eb7"
        ],
        "color": "teal",
        "alert": false,
        "alertActors": [
          "SellSide",
          "BuySide"
        ],
        "lockStatusLogic": "Other",
        "allowDaylockOverride": false,
        "allowGracePeriodOverride": false,
        "requireReprice": true,
        "repriceOutOfGroup": true,
        "worseCase": false,
        "allowLockDateUpdate": false,
        "disabled": false,
        "lockException": {
          "requestType": "Request",
          "enable": false,
          "priceToFee": false,
          "type": "Rate",
          "types": [],
          "valueType": "Points",
          "lockExceptionMappedByGroup": {}
        },
        "lockExtender": {
          "id": "5bb2a9cb46e0fb00019d47ba",
          "mergeSet": null,
          "createdBy": null,
          "creationDate": "2018-10-01T23:12:11Z",
          "modifiedBy": null,
          "modifiedDate": "2018-10-01T23:12:11Z",
          "enable": false,
          "type": "Request",
          "useRateProgram": true,
          "allowOverride": false,
          "lockExtensions": [],
          "allowDailyFee": false,
          "dailyFeeAmount": null,
          "comment": null
        },
        "worseCaseSettings": {
          "currentRateSheet": null,
          "historicalRateSheet": null,
          "worseCase": null
        },
        "buySide": false
      },
      {
        "id": "5bb6b0eafc98bb38f2c0f60a",
        "mergeSet": null,
        "createdBy": null,
        "creationDate": "2018-10-05T00:31:38Z",
        "modifiedBy": null,
        "modifiedDate": "2018-10-05T00:31:38Z",
        "order": 0,
        "root": false,
        "primeState": false,
        "autoStatus": true,
        "autoStatusLockStatusId": "5bb2a97046e0fb00019d3eb7",
        "allowRevert": false,
        "allowRevertTo": [],
        "productCodes": [],
        "productCodesExclude": [
          "975",
          "976",
          "977"
        ],
        "allowPriceChange": false,
        "code": "Lock Extension",
        "buttonName": "Lock Extension",
        "description": null,
        "loanSupplyType": [
          "BuySide",
          "SellSide"
        ],
        "visibleGroupIds": [],
        "alertGroupIds": [],
        "mappingLos": [],
        "nextStatusIds": [
          "5bb2a97046e0fb00019d3eb7"
        ],
        "color": "black",
        "alert": false,
        "alertActors": [],
        "lockStatusLogic": "Other",
        "allowDaylockOverride": false,
        "allowGracePeriodOverride": false,
        "requireReprice": false,
        "repriceOutOfGroup": false,
        "worseCase": false,
        "allowLockDateUpdate": false,
        "disabled": false,
        "lockException": {
          "requestType": "Request",
          "enable": false,
          "priceToFee": false,
          "type": "Rate",
          "types": [],
          "valueType": "Points",
          "lockExceptionMappedByGroup": {}
        },
        "lockExtender": {
          "id": "5bb6b0eafc98bb38f2c0f60b",
          "mergeSet": null,
          "createdBy": null,
          "creationDate": "2018-10-05T00:31:38Z",
          "modifiedBy": null,
          "modifiedDate": "2018-10-05T00:31:38Z",
          "enable": true,
          "type": "Response",
          "useRateProgram": false,
          "allowOverride": false,
          "lockExtensions": [
            {
              "id": "5bbcf3c8fc98bb15fac5ca70",
              "mergeSet": null,
              "createdBy": null,
              "creationDate": "2018-10-09T18:30:32Z",
              "modifiedBy": null,
              "modifiedDate": "2018-10-09T18:30:32Z",
              "days": 7,
              "points": 0.084
            },
            {
              "id": "5bbcf3c8fc98bb15fac5ca71",
              "mergeSet": null,
              "createdBy": null,
              "creationDate": "2018-10-09T18:30:32Z",
              "modifiedBy": null,
              "modifiedDate": "2018-10-09T18:30:32Z",
              "days": 14,
              "points": 0.168
            }
          ],
          "allowDailyFee": true,
          "dailyFeeAmount": 0.69,
          "comment": null
        },
        "worseCaseSettings": {
          "currentRateSheet": null,
          "historicalRateSheet": null,
          "worseCase": null
        },
        "buySide": true
      }
    ]
     Add Lock Event

    To add a locking event, use the call: PUT /rest/v1/lock-admin/addLockEvent

    This call executes whichever next possible status from the locking policy the user selected and updates the existing lock.

    It request passes the following IDs, along with a scenario lock, any exception or extension data if applicable, the date, and comment:

    Copy Code
    {
        lockId: ObjectId;
        lockStatusId: ObjectId;
        priceQuoteId: ObjectId;
        lockEventExceptionInfo: LockEventExceptionInfo;
        lockEventExtensionInfo: LockEventExtensionInfo;
        scenario: ScenarioLock;
        lockDateUpdate: Date;
        lockEventComment: String;
    }

     Request

    Copy Code
    curl --location -g --request POST '{{protocol}}{{domain}}/rest/v1/lock/addLockEvent' \
    --header 'secret: {{token}}' \
    --header 'companyid: {{companyId}}' \
    --data-raw '{
        "lockId": "{{lockId}}",
        "lockStatusId": "{{lockStatusId}}",
        "priceQuoteId": "{{priceQuoteId}}",
        "lockEventExceptionInfo": null,
        "lockEventExtensionInfo": null
    }'